package com.youlu.campus.entity;

import com.youlu.campus.base.base.EntityBase;
import com.youlu.campus.entity.enums.PricingModeEnums;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * 商品基础信息
 *
 * @author: zhuhuaiqi
 * @date: 2021/02/22 17:22
 */
@Getter
@Setter
@Document(collection = "item_info")
public class ItemInfo extends EntityBase {
    /**
     * 商品名
     */
    private String title;
    /**
     * 副标题
     */
    private String subTitle;
    /**
     * 商品分类,badge:徽章 cultureCreative 文创
     */
    private String category;
    /**
     * 商品主图
     */
    private String imageUrl;
    /**
     * 图片信息
     */
    private List<String> imageUrls = new ArrayList<String>();
    /**
     * 描述
     */
    private String desc;
    /**
     * 商品详情,富文本
     */
    private String detail;
    /**
     * 定价,单位分
     */
    private Integer fixedPrice;
    /**
     * 售价,单位分
     */
    private Integer price;
    /**
     * 成本价
     */
    private Integer costPrice;
    /**
     * 库存
     */
    private Integer stock;
    /**
     * 对应积分
     */
    private Integer points;
    /**
     * 商品属性,<K,V>例如,图书ISBN,9787000000000
     */
    private HashMap<String, Object> props = new HashMap<String, Object>();
    /**
     * 商品条形码
     */
    private String barcode;
    /**
     * 运费,单位分
     */
    private Integer freight;
    /**
     * 是否上架
     */
    @Indexed
    private Boolean onSale = Boolean.FALSE;
    /**
     * 上架时间
     */
    private Date onSaleTime;
    /**
     * 商品类型,0:实物商品,1:虚拟商品
     */
    private Integer itemType = 1;
    /**
     * 是否预留,这类商品不上架，系统预留使用
     */
    private Boolean putAside = Boolean.FALSE;
    /**
     * 计价方式
     */
    private List<PricingModeEnums> pricingModeList;

    /**
     * 商品编码
     */
    private String code;
    /**
     * QQ 小程序链接
     */
    @Transient
    private String miniQqLinker;
    /**
     * 微信小程序链接
     */
    @Transient
    private String miniWechatLinker;
    /**
     * H5链接
     */
    @Transient
    private String h5Linker;
    /**
     * 浏览数量
     */
    private Long hits = 0L;
    /**
     * 购买数量
     */
    private Long amount = 0L;
    /**
     * 退款数量
     */
    private Long refundNum = 0L;
    /**
     * 人气值
     */
    private Integer like = 0;
    /**
     * 订单上发货前提示语
     */
    private String orderDeliveryTips;
    /**
     * 是否是组合商品
     */
    private Boolean combinedCommodity;

}
